/*
 * lab2b.fx
 *
 * Created on 27.09.2009, 20:01:22
 */

package javafx179labs.vetkin.lab2;

/**
 * @author Алексей
 */

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Node;
import javafx.ext.swing.SwingButton;
import javafx.ext.swing.SwingTextField;
import javafx.scene.input.MouseEvent;
import javafx.scene.Group ;

var p: Integer ;
var p1: Integer = 0 ;


var textField : SwingTextField = SwingTextField{
    columns: 10
    layoutX: 20
    layoutY: 25
}

var create: SwingButton = SwingButton {
        text: "Добавить"
        layoutX: 140 layoutY: 25
        onMouseClicked: function(event: MouseEvent):Void {
                if (textField.text!="")  CreatGB() ;
               }
       }


var scGroup : Node[] = [textField, create] ;



function CreatGB (): Void {
         p1+=60 ;
         var ObjGroup: Group=Group {
         layoutY: p1 ;

             var tx: SwingTextField=SwingTextField{ // после присвоения объектам "статуса" var
                text: textField.text                // группа перестала добавляться в контент сцены. ПОчему?
                columns: 10
                layoutX: 20
                editable: false
                }

             var edit: SwingButton=SwingButton {
                text: "Редактировать"
                layoutX:140
                onMouseClicked: function(event: MouseEvent):Void {
                        tx.editable=true ;
                        edit.visible=false ;
                        var save: SwingButton=SwingButton {
                                text: "Сохранить изменения"
                                layoutY: bind ObjGroup.layoutY
                                layoutX: bind edit.layoutX
                                onMouseClicked: function (e:MouseEvent): Void {
                                        tx.editable=false ;
                                        edit.visible=true ;
                                        save.visible=false ;
                                        }
                                }
                        }
                }

            var delet: SwingButton = SwingButton{
                text: "Удалить"
                layoutX:280
                onMouseClicked: function(event: MouseEvent):Void {
                        delete event.node from scGroup ; p1-=60 ; //удаляет только 1 раз. Почему?
                        p = 60 ;
                        for (elem in scGroup[3..]) {elem.layoutY = p ;
                                                    p+=40 ; }
                        }
                      }
              }
        insert ObjGroup into scGroup ;


}

Stage { title: "List"
        width: 400
        height: 400
        scene: Scene {
                content: bind scGroup}
        }
